#include "EditorFormularioSolicitud.h"

EditorFormularioSolicitud::EditorFormularioSolicitud()
{
	AddFrame(menubar);
	AddFrame(TopSeparatorFrame());
	AddFrame(toolbar);
	Maximize(true);
	Add(editor.SizePos());
	menubar.Set(THISBACK(MainMenu));
	Sizeable().Zoomable();
	WhenClose = THISBACK(Destroy);
	SetBar();
	editor.WhenRefreshBar = THISBACK(SetBar);
	editor.ClearModify();
	ActiveFocus(editor);
	SetRect(GetWorkArea().CenterRect(1200, 600));
	
	exportado = false;
}

void EditorFormularioSolicitud::Print()
{
	editor.Print();
}

void EditorFormularioSolicitud::Pdf()
{
	FileSel fs;
	fs.Type("Archivos pdf", "*.pdf").AllFilesType().DefaultExt("pdf");
	
	if(!fs.ExecuteSaveAs("Directorio donde se almacenará el PDF"))
		return;
	Size page = Size(3968, 6074);
	PdfDraw pdf;
	UPP::Print(pdf, editor.Get(), page);
	if (! SaveFile(~fs, pdf.Finish()))
		return;
	exportado = true;
}


void EditorFormularioSolicitud::Destroy()
{
	if(! exportado) {
		switch(PromptYesNoCancel("El documento no se ha exportado nunca.¿Quiere exportarlo ahora?")) {
			case 1:
				Pdf();
			break;
			case -1:
				return;
		}
	}
	Break();
}


void EditorFormularioSolicitud::DragAndDrop(Point, PasteClip& d)
{
//	if(AcceptFiles(d)) {
//		Vector<String> fn = GetFiles(d);
//		for(int i = 0; i < fn.GetCount(); i++)
//			if(FileExists(fn[i]))
//				OpenFile(fn[i]);
//	}
}

void EditorFormularioSolicitud::FrameDragAndDrop(Point p, PasteClip& d)
{
	DragAndDrop(p, d);
}


void EditorFormularioSolicitud::MainMenu(Bar& bar)
{
	bar.Add("Archivo", THISBACK(FileBar));
}

void EditorFormularioSolicitud::FileBar(Bar& bar)
{
	
	bar.Add("Exportar a PDF..",CentroJyPImg::pdf16x16(),THISBACK(Pdf))
	   .Help("Exportar el documento a PDF");
	bar.Add("Salir", THISBACK(Destroy));
}

void EditorFormularioSolicitud::MainBar(Bar& bar)
{
	FileBar(bar);
	bar.Separator();
	editor.DefaultBar(bar);
}

void EditorFormularioSolicitud::SetBar()
{
	toolbar.Set(THISBACK(MainBar));
}